//
// 数据类型
//

#ifndef STUDY_DATA_TYPE_H
#define STUDY_DATA_TYPE_H

void test_int_arr() {

    int n[ 10 ]; /* n 是一个包含 10 个整数的数组 */
    int i,j;

    /* 初始化数组元素 */
    for ( i = 0; i < 10; i++ )
    {
        n[ i ] = i + 100; /* 设置元素 i 为 i + 100 */
    }

    /* 输出数组中每个元素的值 */
    for (j = 0; j < 10; j++ )
    {
        printf("一维数组[%d] = %d\n", j, n[j] );
    }
    printf("一维数组 占用内存大小[%d]\n", sizeof(n) );
}

//二维数组
void test_two_arr() {

    /* 一个带有 5 行 2 列的数组 */
    int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};
    int i, j;

    /* 输出数组中每个元素的值 */
    for ( i = 0; i < 5; i++ )
    {
        for ( j = 0; j < 2; j++ )
        {
            printf("二维数组[%d][%d] = %d\n", i,j, a[i][j] );
        }
    }
    printf("二维数组 占用内存大小 = %d\n", sizeof(a));

}

//枚举类
void test_enum() {
    enum DAY
    {
        MON=1, TUE, WED, THU, FRI, SAT, SUN
    } day = THU;
    printf("day %d\n",day);
    // 遍历枚举元素
    for (day = MON; day <= SUN; day++) {
        printf("枚举元素：%d \n", day);
    }
    enum color {red=1,green,blue};
    enum  color favorite_color;
    /* 用户输入数字来选择颜色 */
    printf("请输入你喜欢的颜色: (1. red, 2. green, 3. blue): ");
    scanf("%u", &favorite_color);
    /* 输出结果 */
    switch (favorite_color)
    {
        case red:
            printf("你喜欢的颜色是红色\n");
            break;
        case green:
            printf("你喜欢的颜色是绿色\n");
            break;
        case blue:
            printf("你喜欢的颜色是蓝色\n");
            break;
        default:
            printf("你没有选择你喜欢的颜色\n");
    }
}

//指针也就是内存地址
//指针
void test_pointer(int a,int b) {
    int *p;              // 定义指针变量
    p = &a;
    printf("a 变量的地址： %p\n", p);

    int *bp;              // 定义指针变量
    bp = &b;
    printf("b 变量的地址： %p\n", bp);
}


// 循环结构和选择结构
// if
void test_if() {
    int age;
    printf("请输入你的年纪 ");
    scanf("%d",&age);
    if (age >= 18) {
        printf("你已经是成年人\n");
    }else {
        printf("未成年人，禁止游戏\n");
    }
}

// 跳出循环
void test_break() {
    int i = 1, sum = 0;
    while (1) {
        sum += i;
        i++;
        if (i > 10) break;
    }
    printf("%d\n",sum);
}

// 99乘法表
void test_for() {
    int i=1, j=1;
    for (i = 1; i<=9; i++) {
        for(j = 1; j <= i; j++) {
            printf("%d * %d = %-2d ",i,j,i*j);
        }
        printf("\n");
    }

}


#endif //STUDY_DATA_TYPE_H
